1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for efficiently utilizing memory by enabling different types of mapping to be used within the memory.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
Since resources such as the amount of available memory space in a flash memory storage system are often limited, the efficient usage of memory within the system is critical. By way of example, within flash memory storage systems, pools of spare physical blocks, or physical blocks which are currently not in use but are available for use, may eventually run low. In other words, the number of physical blocks in a spare block pool may be less than a typically desired amount. When the number of spare physical blocks is relatively low, the performance of the overall system may be compromised. When the growing defects consume all spare blocks, the system, e.g., flash memory card, will not function if a spare block is needed. As such, in order for the card to be used, it may be necessary to format the card into a lower capacity.
Therefore, what is desired is a process and a system which allows memory resources within a flash memory system to be efficiently used. Specifically, what is needed is a process and a system which allows for alternative types of logical to physical block mappings to be used in order to efficiently use memory resources and enable physical blocks to be reclaimed for use in a spare block pool when needed.